Non-volatile random access memory (NVM) is an emerging computer memory technology that offers fast, byte-level access to data in a manner similar to volatile random access memory (RAM), but is persistent in nature (i.e., the contents of NVM are saved when system power is turned off or lost). Thus, NVM can be used as both a storage device and as a byte-addressable memory. Computer hardware of the future will likely incorporate large amounts of NVM, possibly as a replacement for traditional volatile RAM.
Some existing hypervisors, such as VMware's ESX Server, are capable of natively managing NVM in a host system. For example, these hypervisors can partition an NVM device into portions referred to as regions and make the regions available for use by virtual machines (VMs). These hypervisors can also create snapshots of NVM regions, which enables various host and cluster-wide reliability and availability capabilities.
One drawback of creating NVM region snapshots is that each snapshot consumes additional NVM space. The amount of NVM consumed by an NVM region snapshot can potentially be as large as the NVM region itself. Accordingly, repeated snapshots can lead to excessive NVM space consumption, resulting in significantly less free NVM for use by VMs and other clients.